const ldpc_encode_table ldpc_encode_table::ldpc_tab_VLSNR_2_9N = {
    FRAME_SIZE_NORMAL - NORMAL_PUNCTURING,
    FRAME_SIZE_NORMAL - NORMAL_PUNCTURING,
    14400,
    140,
    0,
    15,
    NORMAL_PUNCTURING,
    { { 11, 5332, 8018, 35444, 13098, 9655, 41945, 44273, 22741, 9371, 8727, 43219 },
      { 11, 41410, 43593, 14611, 46707, 16041, 1459, 29246, 12748, 32996, 676, 46909 },
      { 11, 9340, 35072, 35640, 17537, 10512, 44339, 30965, 25175, 9918, 21079, 29835 },
      { 11, 3332, 12088, 47966, 25168, 50180, 42842, 40914, 46726, 17073, 41812, 34356 },
      { 11, 15159, 2209, 7971, 22590, 20020, 27567, 4853, 10294, 38839, 15314, 49808 },
      { 11, 20936, 14497, 23365, 22630, 38728, 28361, 34659, 956, 8559, 44957, 22222 },
      { 11, 28043, 4641, 25208, 47039, 30612, 25796, 14661, 44139, 27335, 12884, 6980 },
      { 11, 32584, 33453, 1867, 20185, 36106, 30357, 809, 28513, 46045, 27862, 4802 },
      { 11, 43744, 13375, 36066, 23604, 30766, 6233, 45051, 23660, 20815, 19525, 25207 },
      { 11, 27522, 3854, 9311, 21925, 41107, 25773, 26323, 24237, 24344, 46187, 44503 },
      { 11, 10256, 20038, 12177, 26635, 5214, 14191, 34404, 45807, 4938, 4173, 31344 },
      { 11, 32043, 26501, 46725, 4648, 16718, 31060, 26633, 19036, 14222, 13886, 26535 },
      { 11, 18103, 8498, 36814, 34600, 36495, 36712, 29833, 27396, 11877, 42861, 1834 },
      { 11, 36592, 1645, 3649, 30521, 14674, 3630, 890, 13307, 41412, 24682, 9907 },
      { 11, 4401, 44543, 13784, 5828, 32862, 25179, 29736, 39614, 5186, 49749, 38317 },
      { 11, 41460, 39101, 50080, 40137, 32691, 26528, 35332, 44067, 8467, 14286, 10470 },
      { 11, 12211, 34019, 37870, 36918, 36419, 33153, 50070, 41498, 47741, 30538, 12342 },
      { 11, 33751, 23988, 33624, 41882, 34075, 25552, 3106, 17611, 13190, 29336, 312 },
      { 11, 5667, 35483, 35460, 16153, 37267, 28308, 50009, 46345, 34204, 32756, 38243 },
      { 11, 5657, 24157, 36834, 6890, 49576, 46244, 43875, 16738, 47225, 2944, 36882 },
      { 3, 30341, 48485, 3700, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 14451, 20438, 18875, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 13634, 41138, 42962, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 46459, 13369, 27974, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 21493, 14629, 2369, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 11351, 40226, 42457, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 34749, 39000, 3912, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 18128, 46776, 47055, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 2221, 26806, 11345, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 35143, 630, 2229, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 44009, 41295, 34646, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 32163, 16657, 26544, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 31770, 23641, 43623, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 45826, 10902, 39490, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 7514, 20480, 28511, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 11429, 19834, 35430, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 50112, 38163, 5738, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 16191, 16862, 6783, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 6085, 39149, 34988, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 41497, 32023, 28688, 0, 0, 0, 0, 0, 0, 0, 0 } }
};

const ldpc_encode_table ldpc_encode_table::ldpc_tab_VLSNR_1_5M = {
    FRAME_SIZE_MEDIUM - MEDIUM_PUNCTURING,
    FRAME_SIZE_MEDIUM - MEDIUM_PUNCTURING,
    5840,
    72,
    640,
    25,
    980,
    { { 13, 18222, 6715, 4908, 21568, 22821, 11708, 4769, 4495, 22243, 25872, 9051, 19072, 13956 },
      { 13, 2038, 5205, 21215, 21009, 9584, 2403, 23652, 20866, 20130, 677, 9509, 6136, 773 },
      { 13, 19936, 14590, 17829, 473, 4432, 23171, 11386, 17937, 22084, 24450, 267, 8822, 19335 },
      { 13, 16376, 16769, 5111, 9794, 18907, 827, 12385, 12370, 21647, 10938, 23619, 11633, 15865 },
      { 13, 23417, 7631, 12243, 21546, 4192, 22117, 14757, 4118, 9686, 17021, 8531, 15989, 8807 },
      { 13, 15533, 16584, 18529, 19699, 17821, 4252, 1254, 5952, 3163, 20295, 6944, 1022, 19743 },
      { 13, 129, 16579, 23524, 25897, 14690, 11222, 16250, 9925, 4268, 999, 7102, 24528, 152 },
      { 13, 18361, 3708, 3454, 16604, 1551, 5809, 20324, 4775, 22418, 19091, 19674, 10975, 7327 },
      { 13, 24133, 10950, 22779, 11388, 13818, 20668, 7556, 12333, 16446, 19684, 12510, 25118, 8162 },
      { 3, 17026, 6850, 1269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 21895, 7137, 25270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 11858, 24153, 13303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 7885, 16438, 12805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 10473, 15004, 8052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 2088, 10379, 10067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 21438, 13426, 10440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 17696, 727, 12164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 22623, 8408, 17849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
};

const ldpc_encode_table ldpc_encode_table::ldpc_tab_VLSNR_11_45M = {
    FRAME_SIZE_MEDIUM - MEDIUM_PUNCTURING,
    FRAME_SIZE_MEDIUM - MEDIUM_PUNCTURING,
    7920,
    68,
    0,
    15,
    MEDIUM_PUNCTURING,
    { { 10, 20617, 6867, 14845, 11974, 22563, 190, 17207, 4052, 7406, 16007 },
      { 10, 21448, 14846, 2543, 23380, 16633, 20365, 16869, 13411, 19853, 795 },
      { 10, 5200, 2330, 2775, 23620, 20643, 10745, 14742, 6493, 14222, 20939 },
      { 10, 9445, 9523, 12769, 7332, 21792, 18717, 16397, 14016, 9481, 22162 },
      { 10, 2922, 6427, 4497, 4116, 17658, 2581, 14364, 3781, 18851, 22974 },
      { 10, 10383, 2184, 1433, 3889, 12828, 17424, 17580, 20936, 1390, 21374 },
      { 10, 425, 2063, 22398, 20907, 9445, 14790, 4457, 723, 7048, 4072 },
      { 10, 11771, 9640, 23212, 9613, 12042, 8335, 21386, 20129, 13521, 16301 },
      { 10, 14867, 12501, 1086, 21526, 17701, 17731, 20907, 8790, 19224, 5784 },
      { 10, 7107, 19690, 17616, 5800, 9501, 23320, 16878, 794, 15931, 17539 },
      { 3, 4556, 21783, 1524, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 20100, 11706, 23663, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 2535, 15530, 6116, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 12078, 3867, 2663, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 19629, 20246, 7024, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 11748, 11426, 19802, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 15942, 12333, 5316, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 11521, 3170, 17818, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 2289, 23780, 16575, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 6649, 16991, 13025, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 20050, 10619, 10250, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 3944, 13063, 5656, 0, 0, 0, 0, 0, 0, 0 } }
};

const ldpc_encode_table ldpc_encode_table::ldpc_tab_VLSNR_1_3M = {
    FRAME_SIZE_MEDIUM - MEDIUM_PUNCTURING,
    FRAME_SIZE_MEDIUM - MEDIUM_PUNCTURING,
    10800,
    60,
    0,
    13,
    MEDIUM_PUNCTURING,
    { { 12, 7416, 4093, 16722, 1023, 20586, 12219, 9175, 16284, 1554, 10113, 19849, 17545 },
      { 12, 13140, 3257, 2110, 13888, 3023, 1537, 1598, 15018, 18931, 13905, 10617, 1014 },
      { 12, 339, 14366, 3309, 15360, 18358, 3196, 4412, 6023, 7070, 17380, 2777, 6691 },
      { 12, 12720, 17634, 4141, 1400, 8247, 18201, 16077, 11314, 11928, 3494, 3155, 2865 },
      { 12, 21038, 6928, 3860, 1943, 20292, 6526, 12939, 15182, 3957, 5651, 356, 2673 },
      { 12, 20555, 17905, 5724, 13932, 1218, 17763, 5912, 5164, 6233, 6220, 1277, 19209 },
      { 12, 19190, 4498, 4950, 6645, 5482, 5667, 13701, 16334, 15231, 735, 8589, 12344 },
      { 12, 679, 17849, 17807, 16033, 10181, 3368, 5778, 8275, 2736, 14042, 17506, 6005 },
      { 12, 1576, 10259, 10525, 3007, 16522, 697, 7726, 8641, 14323, 2893, 8168, 11070 },
      { 12, 17270, 10180, 18740, 847, 4969, 14715, 19316, 5530, 17428, 11193, 9861, 13562 },
      { 3, 6156, 18787, 10467, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 2422, 3723, 10769, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 8015, 18716, 13406, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 5969, 15949, 3084, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 6855, 13990, 3764, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 10351, 15779, 10392, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 16078, 19034, 11279, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 11747, 6608, 4188, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 19699, 8928, 8045, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 4598, 7219, 11391, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 19766, 11871, 5692, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 7487, 15905, 17621, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 8554, 7751, 16516, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 4981, 20250, 16146, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 12524, 21364, 10793, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 17083, 2051, 8862, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 1315, 6246, 7721, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 18043, 16652, 5502, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 1432, 5674, 2224, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 11257, 1312, 8453, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
};

const ldpc_encode_table ldpc_encode_table::ldpc_tab_VLSNR_1_5SF2 = {
    FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET1,
    FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET1,
    2680,
    135,
    560,
    30,
    250,
    { { 12, 6295, 9626, 304, 7695, 4839, 4936, 1660, 144, 11203, 5567, 6347, 12557 },
      { 12, 10691, 4988, 3859, 3734, 3071, 3494, 7687, 10313, 5964, 8069, 8296, 11090 },
      { 12, 10774, 3613, 5208, 11177, 7676, 3549, 8746, 6583, 7239, 12265, 2674, 4292 },
      { 12, 11869, 3708, 5981, 8718, 4908, 10650, 6805, 3334, 2627, 10461, 9285, 11120 },
      { 3, 7844, 3079, 10773, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 3385, 10854, 5747, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 1360, 12010, 12202, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 6189, 4241, 2343, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 9840, 12726, 4977, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
};

const ldpc_encode_table ldpc_encode_table::ldpc_tab_VLSNR_11_45SF2 = {
    FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET1,
    FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET1,
    3960,
    34,
    0,
    15,
    SHORT_PUNCTURING_SET1,
    { { 10, 9054, 9186, 12155, 1000, 7383, 6459, 2992, 4723, 8135, 11250 },
      { 10, 2624, 9237, 7139, 12238, 11962, 4361, 5292, 10967, 11036, 8105 },
      { 10, 2044, 11996, 5654, 7568, 7002, 3549, 4767, 8767, 2872, 8345 },
      { 10, 6966, 8473, 5180, 8084, 3359, 5051, 9576, 5139, 1893, 902 },
      { 10, 3041, 3801, 8252, 11951, 909, 8535, 1038, 8400, 3200, 4585 },
      { 3, 5291, 10484, 10872, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 442, 7516, 3720, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 11469, 769, 10998, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 10575, 1436, 2935, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 6905, 8610, 11285, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 1873, 5634, 6383, 0, 0, 0, 0, 0, 0, 0 } }
};

const ldpc_encode_table ldpc_encode_table::ldpc_tab_VLSNR_1_5S = {
    FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET2,
    FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET2,
    3240,
    135,
    0,
    10,
    SHORT_PUNCTURING_SET2,
    { { 12, 6295, 9626, 304, 7695, 4839, 4936, 1660, 144, 11203, 5567, 6347, 12557 },
      { 12, 10691, 4988, 3859, 3734, 3071, 3494, 7687, 10313, 5964, 8069, 8296, 11090 },
      { 12, 10774, 3613, 5208, 11177, 7676, 3549, 8746, 6583, 7239, 12265, 2674, 4292 },
      { 12, 11869, 3708, 5981, 8718, 4908, 10650, 6805, 3334, 2627, 10461, 9285, 11120 },
      { 3, 7844, 3079, 10773, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 3385, 10854, 5747, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 1360, 12010, 12202, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 6189, 4241, 2343, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 9840, 12726, 4977, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
};

const ldpc_encode_table ldpc_encode_table::ldpc_tab_VLSNR_4_15S = {
    FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET2,
    FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET2,
    4320,
    33,
    0,
    8,
    SHORT_PUNCTURING_SET2,
    { { 21,   1953, 2331, 2545, 2623, 4653, 5012, 5700, 6458,  6875,  7605,
        7694, 7881, 8416, 8758, 9181, 9555, 9578, 9932, 10068, 11479, 11699 },
      { 21,   514,  784,  2059, 2129, 2386,  2454,  3396,  5184,  6624,  6825,
        7533, 7861, 9116, 9473, 9601, 10432, 11011, 11159, 11378, 11528, 11598 },
      { 21,   483,  1303, 1735, 2291, 3302, 3648, 4222, 4522, 5511,  6626,
        6804, 7404, 7752, 7982, 8108, 8930, 9151, 9793, 9876, 10786, 11879 },
      { 4, 1956, 7572, 9020, 9971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 4, 13, 1578, 7445, 8373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 4, 6805, 6857, 8615, 11179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 4, 7983, 8022, 10017, 11748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 4, 4939, 8861, 10444, 11661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 4, 2278, 3733, 6265, 10009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 4494, 7974, 10649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 8909, 11030, 11696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 3131, 9964, 10480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
};

const ldpc_encode_table ldpc_encode_table::ldpc_tab_VLSNR_1_3S = {
    FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET2,
    FRAME_SIZE_SHORT - SHORT_PUNCTURING_SET2,
    5400,
    120,
    0,
    8,
    SHORT_PUNCTURING_SET2,
    { { 12, 416, 8909, 4156, 3216, 3112, 2560, 2912, 6405, 8593, 4969, 6723, 6912 },
      { 12, 8978, 3011, 4339, 9312, 6396, 2957, 7288, 5485, 6031, 10218, 2226, 3575 },
      { 12, 3383, 10059, 1114, 10008, 10147, 9384, 4290, 434, 5139, 3536, 1965, 2291 },
      { 12, 2797, 3693, 7615, 7077, 743, 1941, 8716, 6215, 3840, 5140, 4582, 5420 },
      { 12, 6110, 8551, 1515, 7404, 4879, 4946, 5383, 1831, 3441, 9569, 10472, 4306 },
      { 3, 1505, 5682, 7778, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 7172, 6830, 6623, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 7281, 3941, 3505, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 10270, 8669, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 3622, 7563, 9388, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 9930, 5058, 4554, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 4844, 9609, 2707, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 6883, 3237, 1714, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 4768, 3878, 10017, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
      { 3, 10127, 3334, 8267, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
};